A loose collection of devices in a network may not be aware of certain restrictions on other devices on the network. For example, wall-powered devices may have drastically different power settings than battery-powered, mobile devices. When these devices interact, however, there is no architecturally consistent way for a device to speed up or slow down based on the power consumption settings on a remote service.
For example, a wall-powered device may need to throttle down the amount of work sent to a battery-powered device because every packet sent would require the limited battery of the remote device to expend more radio power and CPU energy. Likewise, a battery powered device may wish to offload computation or storage to another device because it would cost too much (in terms of energy consumption) to perform the computational work locally.
It would be desirable, therefore, if systems and methods were available for managing resources, such as battery life, bandwidth utilization, and processing power, among the several nodes that form a distributed network.